#pragma once

#include <GL/glew.h>
#include <iostream>
#include <string>
using namespace std;


bool GLLogCall(const char* function, const char* file, int line);
void GLClearError();


#define GLASSERT(x) if(!(x)) __debugbreak();
#define GLCALL(x) GLClearError();\
	x;\
	GLASSERT(GLLogCall(#x,__FILE__,__LINE__))




class Shader;
class VertexArray;
class IndexBuffer;
class Renderer
{
public:
	void Draw(const Shader& shader,const VertexArray& va,const IndexBuffer& ib);

	void Clear() const;
};

